Computer systems typically incorporate some form of power saving and power management techniques to reduce power consumed by the computer systems, particularly portable or mobile personal computers (PCs) powered by a battery in order to maximize system performance and available battery usage time.
One example such power saving and power management techniques is provided in the Advanced Power Management (APM) specification jointly developed by Intel Corporation and Microsoft Corporation in February 1996. The APM algorithm is implemented by basic input-output system (BIOS) instructions stored in read-only memory (ROM) to provide various power saving functions, and manage the progress of power saving between full-on, standby, and sleep mode. The sleep mode is the level of least power consumption, which interrupts power supplies directed to microprocessor, display apparatus, hard disk drives, floppy disk drives, and other subsystems. The only power supplied is that which can restore the system to the full-on state. Further, the sleep mode may urge the system to enter into full power-off state, if the power management system adopts a suspend-to-disk utility to save the contents of the main memory and the system information to a reserved space on the hard disk.
A later power management specification, the Advanced Configuration and Power Interface (ACPI) specification, version 1.0B, jointly developed by Intel Corp., Microsoft Corp. and Toshiba Corp. in February 1999, is further implemented to enhance power management functionality and robustness, facilitate and accelerate industry-wide implementation of power management, and create a robust interface for configuring motherboard devices. The ACPI specification includes tables, BIOS, and hardware registers. ACPI tables are used to describe system information (e.g., supported power states, power sources, clock sources), features (e.g., available hardware devices), and methods for controlling those features (e.g., ACPI control methods). ACPI BIOS is that part of the computer system firmware that implements the ACPI specified interfaces for sleep, wake-up from sleeping, some restart operations, and provides permanent storage of ACPI table information. ACPI registers are used to store and pass event information between the hardware/firmware and an ACPI driver—an operating system (OS) level program that coordinates all transitions between active and inactive (sleeping) states.
Under the APM specification and the ACPI specification, computer systems such as mobile PCs may be configured to optimize system performance and save power during use, via various active and inactive states. Likewise, mobile PC mechanical structure (hardware) may be optimized for portability. However, system performance and power management features of the current APM and ACPI specifications require the mobile PCs to operate in a stationary environment, and make no distinction when the mobile PCs are used while being stationary or being transported from one location to another location. As a result, system performance and power management issues remain a challenge. This is because such a mobile PC is subject to very different operating environments and conditions when it is being transported than when it is stationary. For example, disk accesses may cause the disk drives to crash when extreme mechanical vibrations or impacts are present for short periods of time. In addition, there may be different requirements on the system performance and power management of the mobile PC if it is being used for certain types of applications while in motion.
Accordingly, there is a need for a mechanism to identify and differentiate between the stationary and mobile (dynamic) operating environments of the mobile PC and to optimize mobile PC system performance and power management for mobile applications, while taking into account operating environments typical of such mobile applications and reducing the risk of damage to system components.